1. Field of the Invention
This invention relates to the field of programmable fuse arrays, and particularly to a one-time programmable fuse array which can be programmed by an end-user.
2. Description of the Related Art
Programmable fuse arrays are commonly used in conjunction with electronic circuits which may require adjustment to provide proper operation. Each fuse circuit in such an array provides either a logic one or a logic zero, depending on whether or not its fuse is xe2x80x9cblownxe2x80x9d. A digital word is thus provided by selectively blowing the fuses in an array. The digital word is applied to, for example, a digital-to-analog converter (DAC) to provide a desired adjustment voltage. For example, an operational amplifier may be designed such that its offset voltage can be adjusted via the application of a voltage at a trim input; once the necessary voltage is determined, a programmable fuse array which drives a DAC can be programmed so that the necessary trim voltage is provided.
The fuses in a programmable fuse array may be programmed one time only; i.e., a blown fuse cannot be made intact again. Conventionally, such arrays are programmed in an integrated circuit (IC) manufacturing facility, to calibrate or trim the characteristics of an electronic device prior to its being made available to customers. Due to the permanency of the programming and the difficulties associated with determining the necessary digital bit pattern and successfully performing the programming, such arrays have not been made accessible to the end-user customers. Other technologies, such as flash memory and EEPROMs, provide a similar function and are available to end-users. However, these approaches can require a considerable amount of circuitry to implement, which may add unacceptable costs or complexity to the device as well as result in a silicon die area which exceeds that which is available.
A one-time end-user-programmable fuse array circuit and method are presented, which overcome the problems noted above.
The invention enables an end-user to permanently program a programmable fuse array circuit suitable for providing a digital input to a programmable analog element such as a DAC, a digital potentiometer, or a capacitor array. The fuse array circuit includes a plurality of programmable data fuses, each of which is transformed from an xe2x80x9cintactxe2x80x9d state to a xe2x80x9cblownxe2x80x9d state in response to a respective program signal, and a programmable xe2x80x9clockxe2x80x9d fuse which, when blown in response to a program signal, prevents any additional data fuses from being transformed to their blown state.
A desired end-user-specified digital bit pattern is conveyed to a programming circuit, preferably via a standard digital interface. The programming circuit is arranged to provide program signals to respective programmable data fuses in accordance with the specified bit pattern. To ensure that the data fuses are properly programmed, the invention includes a validation means which produces an output that indicates when the states of the data fuses match the specified pattern. The programming circuit receives the output of the validation means, and blows the lock fuse when the validation means indicates that the data fuses match the specified pattern.
The end-user-specified bit pattern and the states of the data fuses are multiplexed to a programmable analog element. Initially, the specified pattern is conveyed to the programmable element; the pattern can be varied as necessary to achieve a desired result from the programmable element. When the desired result is achieved, the data fuses are blown and the resulting pattern validated. If the data fuses were blown properly, the lock fuse is blown, and the states of the data fuses are conveyed to the programmable elementxe2x80x94thereby providing a permanent trim signal.
Further features and advantages of the invention will be apparent to those skilled in the art from the following detailed description, taken together with the accompanying drawings.